home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d13 / ptv2n1.arc / BASEOBJ.PAS < prev    next >
Pascal/Delphi Source File  |  1991-03-26  |  998b  |  47 lines

  1. unit BaseObj;
  2.  
  3. { Define a standard base object type for all other objects
  4.   to derive from. }
  5.  
  6. interface
  7.  
  8. type BasePtr = ^Base;
  9.      Base = object
  10.        destructor Done; virtual;
  11.        function ShallowClone: BasePtr;
  12.        function DeepClone: BasePtr; virtual;
  13.        function Clone: BasePtr; virtual;
  14.        end;
  15.  
  16. implementation
  17.  
  18. destructor Base.Done;
  19.   { Free the memory allocated to an object. }
  20.   begin
  21.   end;
  22.  
  23. function Base.ShallowClone: BasePtr;
  24.   { Return a pointer to a shallow clone of Self. }
  25.   var TempPtr: BasePtr;
  26.   begin
  27.   getmem(TempPtr,sizeof(self));
  28.   move(self,TempPtr^,sizeof(self));
  29.   ShallowClone := TempPtr
  30.   end;
  31.  
  32. function Base.DeepClone: BasePtr;
  33.   { Return a pointer to a deep clone of Self.
  34.     Defaults to ShallowClone. }
  35.   begin
  36.   DeepClone := ShallowClone
  37.   end;
  38.  
  39. function Base.Clone: BasePtr;
  40.   { Return a pointer to a normal clone of Self.
  41.     Defaults to ShallowClone. }
  42.   begin
  43.   Clone := ShallowClone
  44.   end;
  45.  
  46. end.
  47.